如何找到映射驱动器的可用空间百分比? 您所在的位置:网站首页 cmd 刷新驱动 如何找到映射驱动器的可用空间百分比?

如何找到映射驱动器的可用空间百分比?

2023-04-19 19:58| 来源: 网络整理| 查看: 265

(摘自我在服务器故障时的一个旧答案)

可靠地获取可用磁盘空间的最简单方法是使用WMI。在尝试解析dir的输出时,您会遇到各种有趣的问题,至少在其他语言的Windows版本中是这样。您可以使用wmic查询驱动器上的可用空间:

wmic logicaldisk where "DeviceID='C:'" get FreeSpace

这将输出类似如下的内容

FreeSpace 197890965504

您可以通过添加/format:value开关将其强制到一行中:

> wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value FreeSpace=197890965504

有一些空行(大约三四行)不适合处理。幸运的是,当我们进行标记化时,for命令可以为我们删除它们:

for /f "usebackq delims== tokens=2" %x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%x

这里的好处是,因为我们只使用第二个令牌,所以所有空行(没有第二个令牌)都会被忽略。

在批处理文件中使用此命令时,请记住将%符号加倍:

for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%%x

您现在可以使用存储在环境变量%FreeSpace%中的空闲空间。

现在获取百分比有点棘手,因为批处理文件只支持32位整数进行计算。但是,您可能不需要将其计算到字节;我认为兆字节就足够了:

for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%%x for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get Size /format:value`) do set Size=%%x set FreeMB=%FreeSpace:~0,-6% set SizeMB=%Size:~0,-6% set /a Percentage=100 * FreeMB / SizeMB echo C: is %Percentage% % free

这应该可以工作,除非您的卷大于20 TiB。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有